package beans;

import java.util.Comparator;

/**
 * Beans Formateur permettant la sauvegarde d'un étudiant dans la base de données
 * @author Amanda & Rami
 */
public class Formateur implements Comparator<Formateur> {

    private int idFormateur;
    private String nom;
    private String prenom;
    private String email;

    /**
     * Constructeur par défaut
     */
    public Formateur() {
        idFormateur = 0;
        nom = null;
        prenom = null;
        email = null;
    }

    /**
     * Constructeur prenant en paramètre l'identifiant du formateur
     * @param idFormateur Identifiant du formateur
     */
    public Formateur(int idFormateur) {
        this.idFormateur = idFormateur;
        this.nom = null;
        this.prenom = null;
        this.email = null;
    }

    /**
     * Constructeur prenant en paramètre l'identifiant, le nom du formateur
     * @param idFormateur Identifiant du formateur
     * @param nom Nom du Formateur
     */
    public Formateur(int idFormateur, String nom) {
        this.idFormateur = idFormateur;
        this.nom = nom;
        this.prenom = null;
        this.email = null;
    }

    /**
     * Constructeur prenant en paramètre l'identifiant, le nom, le prénom du formateur
     * @param idFormateur matricule du formateur
     * @param nom Nom du Formateur
     * @param prenom Prénom du Formateur
     */
    public Formateur(int idFormateur, String nom, String prenom) {
        this.idFormateur = idFormateur;
        this.nom = nom;
        this.prenom = prenom;
        this.email = null;
    }

    /**
     * Constructeur prenant en paramètre l'identifiant, le nom, le prénom, l'adresse email du formateur
     * @param idFormateur Identifiant du formateur
     * @param nom Nom du formateur
     * @param prenom Prénom du formateur
     * @param email Adresse email du formateur
     */
    public Formateur(int idFormateur, String nom, String prenom, String email) {
        this.idFormateur = idFormateur;
        this.nom = nom;
        this.prenom = prenom;
        this.email = email;
    }

    /**
     * Getter / Setter
     * @return email
     */
    public String getEmail() {
        return email;
    }

    /**
     * Getter / Setter
     * @return idFormateur
     */
    public int getIdFormateur() {
        return idFormateur;
    }

    /**
     * Getter / Setter
     * @return nom
     */
    public String getNom() {
        return nom;
    }

    /**
     * Getter / Setter
     * @return prenom
     */
    public String getPrenom() {
        return prenom;
    }

    /**
     * Getter / Setter
     * @param email
     */
    public void setEmail(String email) {
        this.email = email;
    }

    /**
     * Getter / Setter
     * @param idFormateur
     */
    public void setIdFormateur(int idFormateur) {
        this.idFormateur = idFormateur;
    }

    /**
     * Getter / Setter
     * @param nom
     */
    public void setNom(String nom) {
        this.nom = nom;
    }

    /**
     * Getter / Setter
     * @param prenom
     */
    public void setPrenom(String prenom) {
        this.prenom = prenom;
    }

    @Override
    public int hashCode() {
        return this.idFormateur;
    }

    @Override
    public boolean equals(Object obj) {
        if (obj == null) {
            return false;
        }
        if (getClass() != obj.getClass()) {
            return false;
        }
        final Formateur other = (Formateur) obj;
        if (this.idFormateur != other.idFormateur) {
            return false;
        }
        return true;
    }

    public int compare(Formateur o1, Formateur o2) {
        if (o1.getIdFormateur() == o2.getIdFormateur()) {
            return 0;
        } else {
            return -1;
        }
    }
}
